/*
 * @lc app=leetcode.cn id=209 lang=javascript
 *
 * [209] 长度最小的子数组
 */

// @lc code=start
/**
 * @param {number} target
 * @param {number[]} nums
 * @return {number}
 */
var minSubArrayLen = function (target, nums) {
  let minLeng = Infinity;

  let i = 0;
  let sum = 0;

  for (let j = 0; j < nums.length; j++) {
    sum += nums[j];

    while (sum >= target) {
      minLeng = Math.min(minLeng, j - i + 1);
      sum -= nums[i];
      i++;
    }
  }

  return minLeng === Infinity ? 0 : minLeng;
};
// @lc code=end

// var minSubArrayLen = function (target, nums) {
//   let result = Infinity;
//   let f = 0;
//   let s = 0;
//   let sum = 0;
//   while (f < nums.length) {
//     if (sum < target) {
//       sum += nums[f];
//     }
//     while (sum >= target) {
//       result = Math.min(result, f - s + 1);
//       sum -= nums[s];
//       s++;
//     }

//     f++;
//   }

//   return result === Infinity ? 0 : result;
// };
